//从vuex插件中导入createStore函数

//配置vuex的五个核心概念
import {createStore} from 'vuex';

//配置vuex的公共数据、公共函数等模块选项
const store = createStore({
    state : {
        plist:[],
        user : []
    },
    //mutations和actions存储操作函数
    //区别：mutations存储的同步函数,只有此处才能直接修改state存储的数据

    mutations : {
        addlist(state , obj){
            console.log(state,obj);
            //将数据提交给state里面的plist完成添加操作
            //添加之前，现将本次添加的数据独立一个地址，然后再添加
            state.plist.push(JSON.parse(JSON.stringify(obj)));
            alert('添加成功');
            
        },//删除state的数据
        dellist(state,i){
            
                state.plist.splice(i,1);
        },
        //替换新数据

        editlist(state,datas){
            let i = Number(datas.id);
            state.plist[i] = JSON.parse(JSON.stringify(datas.val));
            
        }
    },
    //区别 ： actions村粗的异步函数（同时执行多个函数），不具备修改state对象的数据，只能作为调用函数的接口
    actions : {},

    //存储对state的数据加工，类似于computed计算属性（如state存储的时间戳，getter加工成日期格式数据）
    getters : {},

    //模块,一般用于大型项目的功能划分，登录相关的数据划分一个user模块
    //每一个独立的模块，可以重新设置5个核心概念
    modules : {}
    
});

//导出
export default store;
